package com.mrxu.monitor.util;


import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.Calendar;
import java.util.Date;

public class DateUtil {

    /**
     * 默认构造器
     */
    private DateUtil() {
    }

    /**
     * 获取今天日期字符串yyyyMMdd
     *
     * @return String 今天
     */
    public static String getCurrentStr() {
        return new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
    }

    /**
     * 获取今天日期字符串yyyyMMdd
     *
     * @return String 今天
     */
    public static String getTodayStr() {
        return new SimpleDateFormat("yyyyMMdd").format(new Date());
    }

    /**
     * 获取当剩余日的数量
     * @return
     */
    public static Integer getLeftDayOfMounth() {
        return 31-LocalDateTime.now().getDayOfMonth();
    }

    /**
     * 获取当前天剩余小时
     * @return
     */
    public static Integer getLeftHousrOfToday() {
        return 24-LocalDateTime.now().getHour();
    }

    /**
     * 获取今天前几天
     * @param before 前几天
     * @return
     */
    public static String getTodayBeforeStr(int before) {
        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.DATE, 0-before);
        Date time = cal.getTime();
        return new SimpleDateFormat("yyyyMMdd").format(time);
    }

    /**
     * 获取昨天字符串yyyyMMdd
     *
     * @return String 昨天
     */
    public static String getYesterdayStr() {
        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.DATE, -1);
        Date time = cal.getTime();
        return new SimpleDateFormat("yyyyMMdd").format(time);
    }

    /**
     * 获取最近一周时间yyyyMMdd
     * @return 最近一周日期
     */
    public static String getLastWeekStr() {
        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.DATE, -6);
        Date time = cal.getTime();
        return new SimpleDateFormat("yyyyMMdd").format(time);
    }

    /**
     * 获取最近一月时间yyyyMMdd
     * @return 最近一月日期
     */
    public static String getLastMonthStr() {
        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.DATE, -30);
        Date time = cal.getTime();
        return new SimpleDateFormat("yyyyMMdd").format(time);
    }

    public static void main(String[] args) {
        System.out.println(DateUtil.getLeftHousrOfToday());
    }
}
